import Vue from 'vue'
import Vuex from 'vuex'
import VuePersistedStatePlugin from "vuex-persistedstate";

Vue.use(Vuex)

export default new Vuex.Store({
  //定义私有属性
  state: {
    //登录用户对象
    userInfo:{
      username:"未登录",
      avatar:"https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
      permissions:[]
    },
    menus:[],
    token:null
  },
  //get方法
  getters: {

  },
  //set方法
  //调用mutations中方法需要使用commit函数
  mutations: {
    //写在mutations中方法至少有一个参数就是state
    //其他参数就是外界传递进来数据
    setUserInfo(state,userInfo){
      state.userInfo=userInfo;
    },
    setToken(state,token){
      state.token=token;
    },
    setMenus(state,menus){
      state.menus=menus
    }
  },
  actions: {
  },
  modules: {
  },
  plugins:[
    VuePersistedStatePlugin({
      // 将数据持久化到localStorage本地存储    
      storage:window.localStorage
    }),
  ]
})
